package com.ims.core.doc.mapper;

import java.util.List;
import com.ims.core.doc.domain.TInInvoice;
import com.ims.core.doc.domain.TInInvoiceEntry;

/**
 * 进项发票Mapper接口
 *
 * @author IMS
 * @date 2024-05-20
 */
public interface TInInvoiceMapper
{
    /**
     * 查询进项发票
     *
     * @param invoiceId 进项发票主键
     * @return 进项发票
     */
    public TInInvoice selectTInInvoiceByInvoiceId(String invoiceId);

    /**
     * 查询进项发票列表
     *
     * @param tInInvoice 进项发票
     * @return 进项发票集合
     */
    public List<TInInvoice> selectTInInvoiceList(TInInvoice tInInvoice);


    /**
     * 新增进项发票
     *
     * @param tInInvoice 进项发票
     * @return 结果
     */
    public int insertTInInvoice(TInInvoice tInInvoice);

    /**
     * 修改进项发票
     *
     * @param tInInvoice 进项发票
     * @return 结果
     */
    public int updateTInInvoice(TInInvoice tInInvoice);

    /**
     * 删除进项发票
     *
     * @param invoiceId 进项发票主键
     * @return 结果
     */
    public int deleteTInInvoiceByInvoiceId(String invoiceId);

    /**
     * 批量删除进项发票
     *
     * @param invoiceIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTInInvoiceByInvoiceIds(String[] invoiceIds);

    /**
     * 批量删除进项明细项
     *
     * @param invoiceIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTInInvoiceEntryByInvoiceIds(String[] invoiceIds);

    /**
     * 批量新增进项明细项
     *
     * @param tInInvoiceEntryList 进项明细项列表
     * @return 结果
     */
    public int batchTInInvoiceEntry(List<TInInvoiceEntry> tInInvoiceEntryList);


    /**
     * 通过进项发票主键删除进项明细项信息
     *
     * @param invoiceId 进项发票ID
     * @return 结果
     */
    public int deleteTInInvoiceEntryByInvoiceId(String invoiceId);
}
